<!DOCTYPE html>
<html lang="en-us">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title> 作业8 </title>
  
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="robots" content="all,follow">
  <meta name="googlebot" content="index,follow,snippet,archive">
  <meta property="og:title" content="作业8" />
<meta property="og:description" content="作业8 阅读 PseudocodeStandard。（答案可以打印） 1）用伪代码描述将十进制转换成16进制的方法 IF num &lt; 0 THEN Compute the Binary form of num Turn the Binary form to the hexadecimal form Display the hexadecimal ELSE WHILE num &gt;= 16 Compute left as num % 16 CASE num % 16 OF condition 10 : Append &quot;A&quot; to the result condition 11 : Append &quot;B&quot; to the result condition 12 : Append &quot;C&quot; to the result condition 13 : Append &quot;D&quot; to the result condition 14 : Append &quot;E&quot; to the result condition 15 : Append &quot;F&quot; to the result OTHERS : default Append left to the result ENDCASE Compute num as num / 16 ENDWHILE IF num == 0 AND count !" />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://beikenken.gitee.io/post/%E4%BD%9C%E4%B8%9A8/" />
<meta property="article:published_time" content="2020-10-19T19:37:22+08:00" />
<meta property="article:modified_time" content="2020-10-19T19:37:22+08:00" />

  <meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="作业8"/>
<meta name="twitter:description" content="作业8 阅读 PseudocodeStandard。（答案可以打印） 1）用伪代码描述将十进制转换成16进制的方法 IF num &lt; 0 THEN Compute the Binary form of num Turn the Binary form to the hexadecimal form Display the hexadecimal ELSE WHILE num &gt;= 16 Compute left as num % 16 CASE num % 16 OF condition 10 : Append &quot;A&quot; to the result condition 11 : Append &quot;B&quot; to the result condition 12 : Append &quot;C&quot; to the result condition 13 : Append &quot;D&quot; to the result condition 14 : Append &quot;E&quot; to the result condition 15 : Append &quot;F&quot; to the result OTHERS : default Append left to the result ENDCASE Compute num as num / 16 ENDWHILE IF num == 0 AND count !"/>

  
  
  
  <link rel="stylesheet" href="https://beikenken.gitee.io/css/style-white.css">
  
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
  

  
<link rel="icon" type="image/png" href="https://beikenken.gitee.io/images/favicon.ico" />

  
</head>
<body class="max-width mx-auto px3 ltr">
  <div class="content index py4">

    <header id="header">
  <a href="https://beikenken.gitee.io">
  
    <div id="logo" style="background-image: url(https://beikenken.gitee.io/images/logo.png)"></div>
  
  <div id="title">
    <h1>【18342131】的软导作业索引页   全部博客:beikenken.gitee.io/post</h1>
  </div>
  </a>
  <div id="nav">
    <ul>
      <li class="icon">
        <a href="#"><i class="fas fa-bars fa-2x"></i></a>
      </li>
      
    </ul>
  </div>
</header>
  

    
<article class="post" itemscope itemtype="http://schema.org/BlogPosting">

  <div class="content" itemprop="articleBody">
  
    <h1 id="作业8">作业8</h1>
<h2 id="阅读-pseudocodestandard答案可以打印">阅读 PseudocodeStandard。（答案可以打印）</h2>
<h3 id="1用伪代码描述将十进制转换成16进制的方法">1）用伪代码描述将十进制转换成16进制的方法</h3>
<pre><code>IF num &lt; 0 THEN
  Compute the Binary form of num
  Turn the Binary form to the hexadecimal form
  Display the hexadecimal
ELSE
  WHILE num &gt;= 16
      Compute left  as num % 16
      CASE num % 16 OF 
          condition 10 : Append &quot;A&quot; to the result
          condition 11 : Append &quot;B&quot; to the result
          condition 12 : Append &quot;C&quot; to the result
          condition 13 : Append &quot;D&quot; to the result
          condition 14 : Append &quot;E&quot; to the result
          condition 15 : Append &quot;F&quot; to the result
          OTHERS :
          default Append left to the result
      ENDCASE
      Compute num as num / 16
  ENDWHILE
  IF num == 0 AND count != 0   THEN
      Do nothing
  ELSE
    IF num &lt;= 9   THEN
      Append num to the result
    ELSE
      Append 'A' + num - 10 to the result
    ENDIF
  ENDIF
  Display result in reserve order
ENDIF
</code></pre>
<h3 id="2c语言实现先用注释写好算法然后翻译">2）C语言实现（先用注释写好算法，然后翻译）</h3>
<pre><code>#include&lt;stdio.h&gt;
#include&lt;stdlib.h&gt;

//当num为负数时转为二进制 
int * decToBin(int num){
  int arr[32];
  for(int i = 0; i &lt; 32; i++){
    arr[i] = 0;
  }
  int left;
  int count = 31;
  num = 0 - num;
  while(num &gt;= 2){
    left = num % 2;
    arr[count--] = left;
    num = num / 2;
  }
  arr[count--] = num;
  for(int i = 0; i &lt; 32; i++){
    if(arr[i] == 0){
      arr[i] = 1;
    }
    else{
      arr[i] = 0;
    }
  }
  int temp = 1;
  for(int i = 31; i &gt; 0; i--){
    if(arr[i] + temp == 2){
      arr[i] = 0;
      temp = 1;
    }
    else{
      arr[i] = arr[i] + temp;
      break; 
    }
  }
  return arr;	
}

void decToHex(int num){
  char *result;
  result = (char *)malloc(10 * sizeof(char));
  int left;
  int count = 0;
  if(num &lt; 0){
    int *arr, sum;
    arr = decToBin(num);
    for(int i = 0; i &lt; 32; i = i + 4){
      sum = 8 * arr[i] + 4 * arr[i + 1] + 2 * arr[i + 2] + arr[i + 3];
      if(sum &lt;= 9){
        result[count++] = sum + '0';
      } 
      else{
        result[count++] = 'A' + sum - 10;
      }
    }
    for(int i = 0; i &lt; count; i++){
      printf(&quot;%c&quot;, result[i]);
    }
  }
  else{
    while(num &gt;= 16){
      left = num % 16;
      switch(left){
        case 10:
          result[count++] = 'A';
          break;
        case 11:
          result[count++] = 'B';
          break;
        case 12:
          result[count++] = 'C';
          break;
        case 13:
          result[count++] = 'D';
          break;
        case 14:
          result[count++] = 'E';
          break;
        case 15:
          result[count++] = 'F';
          break;
        default:
          result[count++] = left + '0';
      }
      num = num / 16;	
    }
    if(num == 0 &amp;&amp; count != 0){
      
    }
    else{
      if(num &lt;= 9){
        result[count++] = num + '0';
      }
      else{
        result[count++] = 'A' + num - 10;
      }
    }
    for(int i = count - 1; i &gt;= 0; i--){
      printf(&quot;%c&quot;, result[i]);
    }
  }
    free(result);
} 
int main(){
  int num;
  int i = 6;
  while(i &gt; 0){
    printf(&quot;请输入十进制数字：&quot;);
    scanf(&quot;%d&quot;, &amp;num);
    printf(&quot;该数的十六进制为：&quot;);
    decToHex(num);
    printf(&quot;\n&quot;);
    printf(&quot;\n&quot;);
    i--;
  }
  return 0;
}
</code></pre>
<h3 id="3使用--1--0--1--15---263265-最为输入测试你的程序">3）使用 -1,  0,  1,  15,   26，3265 最为输入测试你的程序</h3>
<p>测试结果：
<img src="/img/9.png" alt="alt"></p>
<h2 id="名词解释与对比">名词解释与对比</h2>
<h3 id="1top-down-design">1）Top-down design</h3>
<p>A top-down approach (also known as stepwise design and in some cases used as a synonym of decomposition) is essentially the breaking down of a system to gain insight into its compositional sub-systems in a reverse engineering fashion.<br>
自顶向下方法(也称为逐步设计，在某些情况下用作分解的同义词)本质上是对系统进行分解，以以逆向工程的方式深入了解其组成子系统。</p>
<h3 id="2-work-breakdown-structure-wbs">2） Work breakdown structure (WBS)</h3>
<p>A work-breakdown structure (WBS) in project management and systems engineering, is a deliverable-oriented breakdown of a project into smaller components.<br>
在项目管理和系统工程中，工作分解结构(WBS)是将项目分解为更小的组件的面向交付的分解。</p>
<h3 id="3简述管理学wbs-与-信息学top-down设计-的异同">3）简述管理学WBS 与 信息学Top-down设计 的异同</h3>
<p>同：都是将大系统分解为多个小系统解决<br>
异：Top-down是从上到下，WBS按照类型分</p>
<h2 id="仔细观察您洗衣机的运作过程">仔细观察您洗衣机的运作过程</h2>
<h3 id="1请使用伪代码分解正常洗衣程序的大步骤包括注水浸泡等">1）请使用伪代码分解“正常洗衣”程序的大步骤。包括注水、浸泡等</h3>
<pre><code>0）选择洗衣模式：对应水位，注水时间   
1）注水， 水位计计水位   
2）浸泡， 计时器计时   
3）电机转动, 左3次，右3次   
4）排水， 水位计计水位   
5）电机转动（脱水）   
6）结束  
</code></pre>
<h3 id="2进一步用基本操作控制语句ifforwhile等变量与表达式写出每-个步骤的伪代码">2）进一步用基本操作、控制语句（IF、FOR、WHILE等）、变量与表达式，写出每 个步骤的伪代码</h3>
<pre><code>READ 用户选择模式  
REPEAT   
  注水  
UNTILL 水位 = 注水要求  
REPEAT   
  浸泡  
UNTILL 时间 = 时间要求  
WHILE 电机启动时间 &gt; 0  
    电机左转3次  
    电机右转3次  
    时间-1单位  
ENDWHILE  
WHILE 水位 = 0
  排水  
ENDWHILE  
FOR 脱水时间 &gt; 0  
  电机转动  
ENDFOR  
关闭电源  
</code></pre>
<h3 id="3根据你的实践请分析正常洗衣与快速洗衣在用户目标和程序上的异同-你认为是否存在改进创新空间简单说明你的改进意见">3）根据你的实践，请分析“正常洗衣”与“快速洗衣”在用户目标和程序上的异同。 你认为是否存在改进（创新）空间，简单说明你的改进意见？</h3>
<p>异同：快速洗衣对比正常洗衣少了浸泡，但都需要经过其他步骤</p>
<p>改进：可以加大洗衣机的转速来提高洗衣质量</p>
<h3 id="4通过步骤3提取一些共性功能模块函数简化正常洗衣程序使程序-变得更利于人类理解和修改维护">4）通过步骤3），提取一些共性功能模块（函数），简化“正常洗衣”程序，使程序 变得更利于人类理解和修改维护。</h3>
<pre><code>FUNCTION wait(time)  
  SET now=timecounter();  
  WHILE timecounter()&lt;=now+soak_time  
  ENDWHILE  
ENDFUNCTION  
  
FUNCTION 注水(volume,timeout)  
  SET now=timecounter();  
  WHILE getwatervolume()&lt;volume  
    waterinswitch(open)  
    IF timecounter()now+timeout  
      halt(failure)  
      BREAK  
    ENDIF  
  ENDWHILE  
  waterinswitch(close)  
ENDFUNCTION  
  
FUNCTION 排水(timeout)  
  SET now=timecounter();  
  WHILE getwatervolume()&gt;0  
    wateroutswitch(open)  
    IF timecounter()now+timeout  
      halt(failure)  
      BREAK  
    ENDIF  
  ENDWHILE   
ENDFUNCTION  
</code></pre>
<h2 id="阅读牧师与恶魔过河的游戏介绍并玩游戏后回答问题">阅读“牧师与恶魔过河”的游戏介绍并玩游戏后回答问题</h2>
<h3 id="游戏涉及哪些类请列表说明">游戏涉及哪些类。请列表说明</h3>
<table>
<thead>
<tr>
<th align="center">类</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">文本</td>
</tr>
<tr>
<td align="center">人物</td>
</tr>
<tr>
<td align="center">按钮</td>
</tr>
<tr>
<td align="center">背景</td>
</tr>
</tbody>
</table>
<h3 id="游戏中有哪些对象各几个例如船一个">游戏中有哪些对象，各几个。例如，船（一个）</h3>
<p>游戏标题（一个）  游戏倒计时（一个）    文字提示（一个）  按钮（七个）  <br>
船（一个）        河岸（两个）  恶魔（三个）      牧师（三个）  游戏背景（三个）</p>
<h3 id="类和对象的区别是什么举一个例子说明">类和对象的区别是什么？举一个例子说明</h3>
<p>类不能直接使用，对象可以直接使用。</p>
<p>类中的背景是一个抽象的概念，而对象中的游戏背景则是真正的游戏中使用的背景。</p>
<h3 id="游戏中的魔鬼有哪些属性和方法">游戏中的魔鬼，有哪些属性和方法？</h3>
<p>属性：贴图；是否在船中；在哪一侧的河岸上</p>
<p>方法：上船；击杀牧师；上岸</p>
<h3 id="假设魔鬼被鼠标点中会执行onclick事件请用文字-伪代码描述这个事件中魔鬼与其他对象沟通的过程">假设魔鬼被鼠标点中，会执行onclick事件，请用文字 （伪代码）描述这个事件中魔鬼与其他对象沟通的过程。</h3>
<p>如果在岸上，则执行上船方法，同时改变自身状态</p>
<p>如果在船上，则执行上岸方法，同时改变自身状态</p>
<h3 id="类或对象会是动词吗">类或对象会是动词吗？</h3>
<p>可以。</p>

  
  </div>
</article>


    <footer id="footer">
  <div class="footer-left">
    Copyright  &copy; 2021  【18342131】的软导作业索引页   全部博客:beikenken.gitee.io/post 
  </div>
  <div class="footer-right">
    <nav>
      <ul>
        
      </ul>
    </nav>
  </div>
</footer>


  </div>
  
</body>

<link rel="stylesheet" href="/lib/font-awesome/css/all.min.css">
<script src="/lib/jquery/jquery.min.js"></script>
<script src="/js/main.js"></script>
</html>
